import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const types = {
  SET_IS_AUTNENTIATED: 'SET_IS_AUTNENTIATED', //是否验证通过
  SET_USER: 'SET_USER' //用户信息
}

const state = {  //需要维护的状态
  isAutnenticated: false, //默认未通过
  user: {} //用户信息
}

const getters = {
  isAutnenticated: state => state.isAutnenticated,
  user: user => state.user
}

const mutations = {
  [types.SET_IS_AUTNENTIATED](state, isAutnenticated) {
    if(isAutnenticated) {
      state.isAutnenticated = isAutnenticated
    } else {
      state.isAutnenticated = false
    }
  },
  [types.SET_USER](state, user) {
    if(user) {
      state.user = user
    } else {
      state.user = {}
    }
  }
}

const actions = {
  setIsAutnenticated: ({ commit }, isAutnenticated)=>{
    commit(types.SET_IS_AUTNENTIATED, isAutnenticated)
  },
  setUser: ({ commit }, user)=>{
    commit(types.SET_USER, user)
  },
  clearCurrentState: ({ commit })=>{
    commit(types.SET_IS_AUTNENTIATED, false)
    commit(types.SET_USER, null)
  }
}



export default new Vuex.Store({
  state,
  getters,
  mutations,
  actions
})
